package cn.yzfy.common.model.vo;

import cn.yzfy.common.base.vo.BaseIdAndTimeAndOperationVO;
import cn.yzfy.common.enums.CategorizeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.io.Serial;

/**
 * @author 一朝风月
 * @date 2025/9/11 19:55
 * @Code 面向注解面向卿，终无解释再无你
 * @description 帖子视图层
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class PostVO extends BaseIdAndTimeAndOperationVO {

    @Serial
    private static final long serialVersionUID = -1;

    /**
     * 头像URL
     */
    @Schema(description = "头像URL")
    private String avatarUrl;

    /**
     * 分类
     */
    @Schema(description = "分类")
    private CategorizeEnum categorize;

    /**
     * 收藏数
     */
    @Schema(description = "收藏数")
    private Integer collectNum;

    /**
     * 评论数
     */
    @Schema(description = "评论数")
    private Integer commentNum;

    /**
     * 帖子内容
     */
    @Schema(description = "帖子内容")
    private String content;

    /**
     * 删除标记
     */
    @Schema(description = "删除标记")
    private Byte deleted;

    /**
     * 图片URL
     */
    @Schema(description = "图片URL")
    private String imageUrl;

    /**
     * 点赞数
     */
    @Schema(description = "点赞数")
    private Integer likeNum;

    /**
     * 位置
     */
    @Schema(description = "位置")
    private String location;

    /**
     * 帖子ID
     */
    @Schema(description = "帖子ID")
    private Long id;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 标签
     */
    @Schema(description = "标签")
    private String tag;

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;

    /**
     * 用户名
     */
    @Schema(description = "用户名")
    private String username;
}
